import numpy as np
import pandas as pd
# 生成一个3x3的随机整数数组，数值范围在1到20之间（不包括20）
arr = np.random.randint(1, 20, size=(3, 3))
# 将numpy数组转换为pandas DataFrame，并指定列名为'a','b','c'
df = pd.DataFrame(arr, columns=['a', 'b', 'c'])
# 打印原始DataFrame
print("原始DataFrame:")
print(df)
# 使用agg方法计算每列的总和
print("\n每列的总和:")
print(df.agg('sum'))
# 使用agg方法同时计算每列的总和和平均值
print("\n每列的总和和平均值:")
print(df.agg(['sum', 'mean']))
# 自定义函数：计算极差（最大值与最小值的差）
def rang(arr):
    return arr.max() - arr.min()
# 按行进行聚合操作：
# - 对第0行（索引为0的行）计算总和
# - 对第1行（索引为1的行）计算平均值
# - 对第2行（索引为2的行）使用自定义的rang函数计算极差
# axis=1表示按行方向进行操作
print("\n按行聚合（第0行总和，第1行平均值，第2行极差）:")
print(df.agg({0: 'sum', 1: 'mean', 2: rang}, axis=1))